﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace RAMED
{
    public partial class ModifierpvForm : Form
    {
        public PV pv = new PV();

        private Pv pl = new Pv();

        public Pv PL
        {
            get { return pl; }
            set { pl = value; }
        }
        public List<Beneficaire> BénéficiairePV = new List<Beneficaire>();
       
        public ModifierpvForm()
        {
            InitializeComponent();
            RAMEDEntities1 context = new RAMEDEntities1();
            comboBoxannexe.DataSource = context.Annexe_administratif;
            comboBoxannexe.DisplayMember = "nom_annexe_administratif";
            comboBoxannexe.ValueMember = "id_annexe_administratif";
            remplirDataGridView();

        }

        private void btnenrgistrepv_Click(object sender, EventArgs e)
        {


            int nmb_pauvres = utitlitaire.CasterString(txtperssonepauvre.Text);
            int nmb_vulnerables = utitlitaire.CasterString(txtpersonnevulnérabilité.Text);
            int nmb_acceptes = utitlitaire.CasterString(txtacceptation.Text);
            if (nmb_pauvres + nmb_vulnerables != nmb_acceptes)
            {
                NotificationTest.NotificationManager nm = new NotificationTest.NotificationManager();
                nm.Show(this, "le nombre d'acceptation des dossiers doit être égale le nombre de personnes en pauvre + le nombre de personnes en vulnérabilités", Color.Red, 6000);
                return;
            }
            RAMEDEntities1 Context = SingletonContext.GetContext();
            Pv pl = new Pv();
            pl = Context.Pvs.Where(d => d.id_pv == PL.id_pv).First();
            pl.nombre_de_dossier = utitlitaire.CasterString(txtnombre.Text);
            pl.nombre_acceptaion_de_dossie = utitlitaire.CasterString(txtacceptation.Text);
            pl.nombre_de_personne_sont_en_pauvre= utitlitaire.CasterString(txtperssonepauvre.Text);
            pl.nombre_de_personne_sont_en_vulnérabilité = utitlitaire.CasterString(txtpersonnevulnérabilité.Text);
            pl.date_pv = dateTimePickerdatefin.Value;
            Annexe_administratif annexe_administratif = ((Annexe_administratif)comboBoxannexe.SelectedItem);
            pl.id_annexe_administratif = annexe_administratif.id_annexe_administratif;
            RechercheFormParent.mettreAjourFormGridView();

            Context.SaveChanges(); 
            this.Dispose();
            
        }
        public void InitialiserChamps()
        {
            txtnombre.Text = pl.nombre_de_dossier.ToString();
            txtacceptation.Text = pl.nombre_acceptaion_de_dossie.ToString();
            txtperssonepauvre.Text = pl.nombre_de_personne_sont_en_pauvre.ToString();
            txtpersonnevulnérabilité.Text = pl.nombre_de_personne_sont_en_vulnérabilité.ToString();
            dateTimePickerdatefin.Value= pl.date_pv.Value;
            comboBoxannexe.SelectedValue = pl.id_annexe_administratif;
            beneficiairesGridView.DataSource = pl.Beneficaires ;
        }

        
        private void btnmodifbene_Click(object sender, EventArgs e)
        {
            if (beneficiairesGridView.CurrentRow ==  null )
            {
                NotificationTest.NotificationManager nm = new NotificationTest.NotificationManager();
                nm.Show(this, "Veuillez sélectionner un bébéficiaire pour le modifier", Color.Red, 3000);
            }
            else
            {

                ModifierbeneficaireForm mbf = new ModifierbeneficaireForm();
                RAMEDEntities1 context = SingletonContext.GetContext();
                //Beneficaire b = new Beneficaire();
                //int id_beneficiare = ((Beneficaire)beneficiairesGridView.CurrentRow.DataBoundItem).id_beneficaire;
                //b = context.Beneficaires.Where(d => d.id_beneficaire == id_beneficiare).First();
                Beneficaire b = new Beneficaire();
                b = ((Beneficaire)beneficiairesGridView.CurrentRow.DataBoundItem);

                mbf.B = b;
                mbf.InitialiserChamps();
                mbf.modifierPvForm = this;
                mbf.Show();

            }

            
        }
        public void mettreAjourFormGridView()
        {
            beneficiairesGridView.DataSource = null;
            remplirDataGridView();
            beneficiairesGridView.Update();
            beneficiairesGridView.Refresh();
        }

        private void beneficiairesGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
           
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void modifierImages_Click(object sender, EventArgs e)
        {
            ImageViewer imageViewer = new ImageViewer();
            foreach (Page page in pl.Pages)
                imageViewer.images.Add(utitlitaire.ConvertirBinaryAImage(page.image_)); 
            imageViewer.Show();
        }

        public RechercheForm RechercheFormParent { get; set; }

        private void btnbene_Click(object sender, EventArgs e)
        {
            AjoutBeneficiaireModif ben = new AjoutBeneficiaireModif();
            ben.modifierPvForm = this;
            ben.Show();
        }

        private void Button21_Click(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Minimized;
        }



        private void remplirDataGridView()
        {
            beneficiairesGridView.AutoGenerateColumns = false;
            beneficiairesGridView.ColumnCount = 6;
            beneficiairesGridView.Columns[0].HeaderText = "Nom";
            beneficiairesGridView.Columns[0].DataPropertyName = "nom_beneficaire";

            beneficiairesGridView.Columns[1].HeaderText = "Prénom";
            beneficiairesGridView.Columns[1].DataPropertyName = "prenom_beneficaire";

            beneficiairesGridView.Columns[2].HeaderText = "CIN";
            beneficiairesGridView.Columns[2].DataPropertyName = "CIN_beneficaire";

            beneficiairesGridView.Columns[3].HeaderText = "Adresse";
            beneficiairesGridView.Columns[3].DataPropertyName = "adresse_beneficaire";

            beneficiairesGridView.Columns[4].HeaderText = "Type";
            beneficiairesGridView.Columns[4].DataPropertyName = "type_beneficaire";

            beneficiairesGridView.Columns[5].HeaderText = "Centre de santé";
            beneficiairesGridView.Columns[5].DataPropertyName = "Centre_sante";

           
            beneficiairesGridView.DataSource = pl.Beneficaires;
        }

        private void ModifierpvForm_Load(object sender, EventArgs e)
        {

        }

        private void ModifierpvForm_Load_1(object sender, EventArgs e)
        {

        }

        private void txtnombre_Validating(object sender, CancelEventArgs e)
        {
            utitlitaire.ValiderNombre("Saisissez un numéro valide", txtnombre, e, errorProvider1);

        }

        private void txtperssonepauvre_Validating(object sender, CancelEventArgs e)
        {
            utitlitaire.ValiderNombre("Saisissez un nombre valide", txtperssonepauvre, e, errorProvider1);

        }

        private void txtpersonnevulnérabilité_Validating(object sender, CancelEventArgs e)
        {
            utitlitaire.ValiderNombre("Saisissez un nombre valide", txtpersonnevulnérabilité, e, errorProvider1);

        }

        private void txtacceptation_Validating(object sender, CancelEventArgs e)
        {
            utitlitaire.ValiderNombre("Saisissez un nombre valide", txtacceptation, e, errorProvider1);

        }
    }

}
